The ATOMOΣ Transactional Programming Language
نویسندگان
چکیده
Atomos is the first programming language with implicit transactions, strong atomicity, and a scalable multiprocessor implementation. Atomos is derived from Java, but replaces its synchronization and conditional waiting constructs with simpler transactional alternatives. The Atomos watch statement allows programmers to specify fine-grained watch sets used with the Atomos retry conditional waiting statement for efficient transactional conflict-driven wakeup even in transactional memory systems with a limited number of transactional contexts. Atomos supports open-nested transactions, which are necessary for building both scalable application programs and virtual machine implementations. The implementation of the Atomos scheduler demonstrates the use of open nesting within the virtual machine and introduces the concept of transactional memory violation handlers that allow programs to recover from data dependency violations without rolling back. Atomos programming examples are given to demonstrate the usefulness of transactional programming primitives. Atomos and Java are compared through the use of several benchmarks. The results demonstrate both the improvements in parallel programming ease and parallel program performance provided by Atomos.
منابع مشابه
Transactional and Interactional Strategies on Iranian Intermediate EFL Learners’ Spoken Language Performance
This study investigated the effect of transactional and interactional strategies on developing Iranian intermediate EFL learners’ spoken language performance. First of all, to homogenize the participants, the researcher administered IELTS speaking tests to 50 participants as the pre-test in order to select the main sample of the study which were 30 students. That is, those participants whose sc...
متن کاملDissecting Transactional Executions in Haskell
In this paper, we present a Haskell Transactional Memory benchmark in order to provide a comprehensive application suite for the use of Software Transactional Memory (STM) researchers. We develop a framework to profile the execution of the benchmark applications and to collect detailed runtime data on their transactional behavior. Using a composite of the collected raw data, we propose new tran...
متن کاملPerspectives on Transactional Memory
We examine the role of transactional memory from two perspectives: that of a programming language with atomic actions and that of implementations of the language. We argue that it is difficult to formulate a clean, separate, and generally useful definition of transactional memory. In both programming-language semantics and implementations, the treatment of atomic actions benefits from being com...
متن کاملIntegrating Transactional Memory into C + +
We discuss the integration of transactional memory into the C++ programming language. We take a decidedly pragmatic approach in this paper: Our goal is to induce minimal changes consistent with implementability, usable transactional semantics, and the prevalent styles of C++ programs. In particular, we want to avoid designing a new language; rather, we want to enable incremental adoption of tra...
متن کاملTwo Interfaces to the RSTM Transactional Memory System∗
Software transactional memory is a promising new paradigm for concurrent programming. We explore the design of the application programmer interface to RSTM [MSH06] and propose language extensions to C++ that alleviate some of the unavoidable difficulties with the API. 1 The Transactional Memory Model
متن کامل